clear; clc; close all;
% 图 (a) 展示了不同电流源幅值 A 对存储器特性的影响
% 图 (b) 展示了不同电流源频率 ω 对存储器特性的影响

% 参数设置
A_values = [0.05, 0.1, 0.2];  % 电流源幅值A
omega_values = [0.1, 0.2, 0.4];  % 电流源频率omega
n = 1: 100;  % 迭代步数
q0 = 0;  % 初始状态

% 子图(a) 电流源幅值变化
subplot(1, 2, 1);

for i = 1:length(A_values)
    A = A_values(i);
    
    [i_n, v_n, q_n] = memristor(A, omega_values(1), q0, n);  % 使用固定频率omega=0.2
    
    % 绘制存储器特性曲线（v_n 与 i_n）
    plot(i_n, v_n, 'LineWidth', 2);  % 绘制每个A值的曲线
    hold on;
end

% 设置图表标题和标签
title('电流源幅值 A 的变化');
xlabel('i_n');
ylabel('v_n');
legend(arrayfun(@(A) sprintf('A = %.2f', A), A_values, 'UniformOutput', false), 'Location', 'best');
grid on;
hold off;

% 子图(b) 电流源频率变化
subplot(1, 2, 2);

for i = 1:length(omega_values)
    omega = omega_values(i);
    
    [i_n, v_n, q_n] = memristor(A_values(2), omega, q0, n);  % 使用A=0.1作为示例
    
    % 绘制存储器特性曲线（v_n 与 i_n）
    plot(i_n, v_n, 'LineWidth', 2);  % 绘制每个omega值的曲线
    hold on;
end

title('电流源频率 \omega 的变化');
xlabel('i_n');
ylabel('v_n');
legend(arrayfun(@(omega) sprintf('\\omega = %.2f', omega), omega_values, 'UniformOutput', false), 'Location', 'best');
grid on;
hold off;
